from IPython.display import Audio, display, HTML
import matplotlib.pyplot as plt
import numpy as np
import os
DPI = 100
SR = 22050
def draw_example(i, wave, mel):
fig, axes = plt.subplots(2, dpi=DPI)
fig.suptitle('Training example %d' % (i + 1))
axes[0].plot(wave)
axes[1].imshow(mel.transpose(), origin='lower')
plt.show()
display(Audio(wave, rate=SR))
base_dir = 'mol/dump/lj/logmelspectrogram/norm/train_no_dev/'
i = 0
for fname in os.listdir(base_dir):
path = os.path.join(base_dir, fname)
if path.endswith('-wave.npy'):
wave_path = path
mel_path = path[:path.find('-wave.npy')] + '-feats.npy'
draw_example(i, np.load(wave_path), np.load(mel_path))
i += 1
def plot_loss_curve(title, path):
with open(path) as f:
losses = np.asarray([float(line.split(',')[1]) for line in f.readlines()])
times = np.arange(len(losses))
fig, ax = plt.subplots(1, dpi=DPI)
fig.suptitle(title)
ax.set_ylabel('Log probability')
ax.set_xlabel('Batch')
ax.plot(times, losses)
plt.show()
plot_loss_curve('Training loss', 'mol/train_no_dev.txt')
plot_loss_curve('Test loss', 'mol/dev.txt')
base_dir = 'mol/exp/lj_train_no_dev_mol_wavenet/intermediate/audio/'
for fname in sorted(os.listdir(base_dir)):
path = os.path.join(base_dir, fname)
if path.endswith('target.wav'):
step = int(path[path.find('step') + 4:path.find('_target')])
target_path = path
pred_path = path.replace('target', 'predicted')
display(HTML('<h3>Step %d</h3>' % step))
display(HTML('<p>Training example</p>'))
display(Audio(target_path))
display(HTML('<p>WaveNet prediction</p>'))
display(Audio(pred_path))
Training example
WaveNet prediction
Training example
WaveNet prediction
Training example
WaveNet prediction
Training example
WaveNet prediction
Training example
WaveNet prediction
Training example
WaveNet prediction
Training example
WaveNet prediction
Training example
WaveNet prediction
base_dir = 'mol/exp/lj_train_no_dev_mol_wavenet/generated/checkpoint_latest/dev/'
for fname in sorted(os.listdir(base_dir)):
path = os.path.join(base_dir, fname)
if path.endswith('ref.wav'):
target_path = path
pred_path = path.replace('ref', 'gen')
display(HTML('<h3>Test example %s</h3>' % path[path.find('flute'):path.find('_ref')]))
display(HTML('<p>Ground truth</p>'))
display(Audio(target_path))
display(HTML('<p>WaveNet prediction</p>'))
display(Audio(pred_path))
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction
Ground truth
WaveNet prediction